package com.southminority.ethnic.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * 学生作品表
 * @TableName student_article
 */
@EqualsAndHashCode(callSuper = true)
@TableName(value = "student_article")
@Data
@Schema(description = "学生作品实体")
public class StudentArticle extends BasePoJo implements Serializable {
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 文章标题
     */
    @Schema(description = "文章标题")
    private String title;

    /**
     * 作者姓名
     */
    @Schema(description = "作者姓名")
    private String author;

    /**
     * 作者ID（关联用户表）
     */
    @Schema(description = "作者ID")
    private Long authorId;

    /**
     * 发表期刊
     */
    @Schema(description = "发表期刊")
    private String journal;

    /**
     * 发表日期
     */
    @Schema(description = "发表日期")
    private LocalDate publishDate;

    /**
     * 文章摘要
     */
    @TableField("abstract")
    @Schema(description = "文章摘要")
    private String abstractText;

    /**
     * 文章内容（富文本）
     */
    @Schema(description = "文章内容")
    private String content;

    /**
     * 关键词（逗号分隔）
     */
    @Schema(description = "关键词")
    private String keywords;

    /**
     * 文件URL（PDF等）
     */
    @Schema(description = "文件URL")
    private String fileUrl;

    /**
     * 浏览次数
     */
    @Schema(description = "浏览次数")
    private Integer views;

    /**
     * 状态（0：草稿；1：已发布；2：已下架）
     */
    @Schema(description = "状态")
    private Integer status;

    private static final long serialVersionUID = 1L;
}
